# /	从根节点开始选取	/html/div/span
# //	从任意节点开始选取	//input
# .	选取当前节点
# ..	选取当前节点的父节点	//input/.. 会选取 input 的父节点
# @	选取属性或者根据属性选取	//input[@data] 选取具备 data 属性的 input 元素 //@data 选取所有 data 属性
# *	通配符，表示任意节点或任意属性
import requests
from lxml import etree
# 读取文件
page1 = open('page1.html', 'rb')
text = page1.read()

# 使用etree.HTML(text)生成一个对象
elements = etree.HTML(text)

# 通过elements.xpath()方法传入xpath语法规则
h2s = elements.xpath("//h2/text()")
print(h2s)

img_srcs = elements.xpath("//img/@src")
print(img_srcs)

# 通过两个点..可以选取到父节点
hrefs = elements.xpath("//h2/../@href")
print(hrefs)

# @href不放到方括号里面,则代表选取属性值,
# 如果放在方括号里面,则代表条件(拥有href属性的节点,如果还给属性指定值,
#   代表有class属性的节点,且属性为"cover")
img_srcs_cover = elements.xpath('//img[@class="cover"]/@src')
i = 0
for cover in img_srcs_cover:
    img = requests.get(cover)
    img_binary = img.content
    with open("{}.jpg".format(i), 'wb') as f:
        f.write(img_binary)
    i = i + 1